#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
int* plusOne(int* digits, int digitsSize, int* returnSize)
{
    int* arr = malloc(sizeof(int) * digitsSize);
    if (digitsSize == 1)
    {
        if (digits[0] == 9)
        {
            arr = realloc(arr, sizeof(int) * (digitsSize + 1));
            arr[0] = 1;
            arr[1] = 0;
            *returnSize = digitsSize + 1;
            return arr;
        }
        else
        {
            arr[0] = digits[0] + 1;
            return arr;
        }
    }
    else if (digitsSize >= 2)
    {
        if (digits[digitsSize - 1] == 9)
        {
            arr[digitsSize - 1] = 0;
            int i = 1;
            for (i = 2; i <= digitsSize; i++)
            {
                if (digits[digitsSize - i] == 9&&digits[digitsSize-i+1]==9 && i < digitsSize)
                {
                    arr[digitsSize - i] = 0; 
                }
                else if (digits[digitsSize - i] != 9 && i < digitsSize)
                {
                    arr[digitsSize - i] = digits[digitsSize - i] + 1;
                    break;
                }
                else
                {
                    if (digits[0] == 9)
                    {
                        arr = realloc(arr,sizeof(int) * (digitsSize + 1));
                        *returnSize = digitsSize + 1;
                        arr[0] = 1; arr[digitsSize] = 0;
                    }
                    else
                    {
                        arr[0] = digits[0] + 1;
                    }
                }
            }
            for (i=i+1; i <= digitsSize; i++)
            {
                arr[digitsSize - i] = digits[digitsSize - i];
            }
            return arr;
        }
        else
        {
            arr[digitsSize - 1] = digits[digitsSize - 1] + 1;
            int j = 0;
            for (j = 2; j <= digitsSize; j++)
            {
                arr[digitsSize - j] = digits[digitsSize - j];
            }
            return arr;
        }
    }
    return NULL;
}
int main()
{
    int arr[100];
    int num1 = 0;
    scanf("%d", &num1);
    int num2 = num1;
    int returnsize = 0;
    int i = 0;
    int sizeSize = 0;
    while (num1 != 0)
    {
        sizeSize++;
        num1 = num1 / 10;
    }
    returnsize = sizeSize;
    for (i = sizeSize-1; i>=0; i--)
    {
        arr[i] = num2 % 10;
        num2 = num2 / 10;
    }
    int* point = plusOne(arr, sizeSize, &returnsize);
    for (i = 0; i < returnsize; i++)
    {
        printf("%d ", point[i]);  
    }
    free(point);
    return 0;
}